Assume that a tilting rotary table 100 in FIG. 5 (inclination angle β) is employed as a target plant to be controlled. The rotary table 100 performs rotational motion at a rotation angle x along a rotation axis Zu that is directly connected to a servo motor (not shown). It is noted that gravity center G is regarded as being present at a location at a distance L apart from an on origin Ou for the angle of rotation and forward from a rotation angle=0 by an angle α. The position control apparatus exercises position control, so that a position command value X issued by a host apparatus (not shown) through the performance of function generation matches the rotation angle x.
Thereafter, an equation of motion is introduced for the tilting rotary table 100 in FIG. 5. In this case, the rotation angle x can be employed as generalized coordinates, and the following equation of motion (1) is obtained. FIG. 6 is a block diagram representing this equation of motion (hereinafter, SIN β is referred to as “Sβ” and COS(x+α) is referred to as “C(x+α)”).τm=(ML2+Ir)(dv/dt)+MgLSßC(x+α)+τL  (1)Here, τm is a torque generated by a motor, M is mass for the entire rotary table 100, Ir is moment of inertia for the entire rotary table 100 (including the motor) around the axis parallel with the rotation axis that passes the center of gravity, v is a rotation angular velocity, g is gravitational acceleration, τg=MgLSβC(x+α) is a gravitational torque, and τL is a sliding-mode load torque.
When a 4-dimensional signal vector ξ and a parameter vector γ are defined by employing equations (2) and (3), motion equation (1) can be replaced with equation (4) by using well known parametric representation (hereinafter, the transposition of a vector or a matrix is represented with a superscript “T”). As is apparent from equation (2), the signal vector ξ employs angular acceleration and a rotation angle as elements.ξ=[dv/dt,Cx,−Sx,1]T  (2)γ=[ML2+Ir,MgLSßCα,MgLSßSα,τL]T  (3)τm=ξTγ  (4)
FIG. 7 is a block diagram illustrating an example conventional position control apparatus 200 that controls a rotation angle x around a rotation axis based on a position command value X that a host apparatus (not shown) issues by performing function generation for each predetermined period of time. The position control apparatus 200 in this example includes an arrangement in which compensation control is additionally provided to identify a characteristic parameter for a target plant 100 and to employ a value for the parameter that is identified. The operation of the conventional position control apparatus 200 in FIG. 7 will now be described.
In FIG. 7, a feedforward structure is employed in order to increase a command and response speed. Specifically, an acceleration/deceleration processor 50 performs an acceleration/deceleration process for a position command value X to provide appropriate acceleration or jerk, and outputs the resultant position command Xc. A differentiator 54 performs time differentiation for the position command Xc to obtain velocity feedforward Vf, and further, a differentiator 55 performs time differentiation for the velocity feedforward Vf to obtain acceleration feedforward Af. An amplification ratio Rb of an amplifier Rb is a constant to obtain acceleration/deceleration torque feedforward if that corresponds to a motor torque, with which the acceleration feedforward Af is to be generated by a target plant 100 (a rotary table in this case).
The following feedback arrangement is employed. First, a rotation angle detector (not shown) detects the rotation angle x, a subtractor 51 subtracts the rotation angle x from a position command value Xc, and a position deviation amplifier Gp amplifies a position deviation that is the result output by the subtractor 51. An adder 52 adds the resultant position deviation to the velocity feedforward Vf, and obtains a velocity command value Vc. A subtractor 53 subtracts, from the velocity command value Vc, a rotation angular velocity v that is obtained by a differentiator 56 through differentiation of the rotation angle x, and thereafter, generally, a velocity deviation amplifier Gv performs proportional integration and amplification for the velocity deviation output by the subtractor 53.
An adder 57 adds the output of the velocity deviation amplifier Gv to the acceleration/deceleration torque feedforward τf, and obtains a torque command value τc, and a power amplifier Rt multiplies the torque command value τc by Rt times. Rt is a constant determined in accordance with the characteristic of a servo motor, and the obtained output τm is employed as a torque generated by the servo motor to drive the target plant 100 (in this case, a rotary table). An adaptive loop operation unit 60 is a block that, based on the torque command value τc and the signal vector ξ, calculates an identified parameter vector {circumflex over ( )}γ that is an estimated value for a parameter vector γ.
FIG. 8 is a block diagram illustrating the internal arrangement of the adaptive loop operation unit 60. A generalized adaptive law 61 is employed to calculate the identified parameter vector {circumflex over ( )}γ(k) based on equations (5) and (6) that are well known in, for example, “Introduction of Robust Adaptive Control” (Kimio Kanai, Fifth Edition, Ohmsha, Ltd., published on Dec. 10, 1994, pp. 62-63) (hereinafter, of time-series signals generated for each specific sampling period of time, a signal in the k-th cycle is represented by (k)).{circumflex over ( )}γ(k)={circumflex over ( )}γ(k−1)−P(k−1)ξ(k)ξ(k)TΦ(k)  (5)P(k)−1=C1(k)P(k−1)−1+C2(k)ξ(k)ξ(k)T  (6)Here, P(k) denotes a gain matrix having an initial value of P(0), and it is assumed that 0<C1(k)≤1, 0≥C2(k)<2, and P(0)>0 is established.
At this time, a scalar-tracking error ξ(k)TΦ(k) is a signal obtained after the subtractor 63 subtracts the torque τm(k)=ξ(k)T·γ, generated by the servo motor, from a scalar signal ξ(k)T·{circumflex over ( )}γ(k) that is obtained by the multiplier 62 by multiplying the signal vector ξ(k) by the identified parameter vector {circumflex over ( )}γ(k). That is, the scalar-tracking error ξ(k)TΦ(k) can be represented as the following equation (7) by employing {circumflex over ( )}γ(k) in equation (5).ξ(k)TΦ(k)=ξ(k)T({circumflex over ( )}γ(k)−γ)=ξ(k)T·{circumflex over ( )}γ(k)−τm(k)=ξ(k)T{{circumflex over ( )}γ(k−1)−P(k−1)·ξ(k)·ξ(k)TΦ(k)}−τm(k)  (7)
When equation (7) is rearranged for the scalar-tracking error ξ(k)TΦ(k), equation (8) is obtained. When equation (8) is substituted into equation (5) described above, {circumflex over ( )}γ(k) can be calculated by employing {circumflex over ( )}γ(k−1).ξ(k)TΦ(k)={ξ(k)T·{circumflex over ( )}γ(k−1)−τm(k)}/{1+ξ(k)TP(k−1)ξ(k)}  (8)
Meanwhile, as for convergence of identification by employing a signal matrix Ξ(k) in equation (9),Ξ(k)=[ξ(1),ξ(2), . . . , ξ(k)]T  (9)where signal vectors ξ(k)T are arranged along rows in a time series manner, it is well known that, so long as linear independence is continuously established among the individual column vectors (hereinafter, expression of “having full column rank” is also employed), convergence of {circumflex over ( )}γ(k)→γ occurs with k→∞, and identification of a parameter is established, and it is also known that the speed of convergence response is increased as the linear independence increases among the column vectors of Ξ(k).
Referring again to FIG. 7, the operation of the conventional position control apparatus 200 will be described. A signal vector generator 70 calculates trigonometric functions for the rotary angle x to obtain Cx (=COS x) and −Sx (=−SIN x), and performs differentiation for the rotary angular velocity v to obtain dv/dt. That is, the signal vector generator 70 serves as a block that generates the original signal for the signal vector ξ in equation (2). It should be noted that this output is multiplied in the multiplier 72 by a binary (1 or 0) signal IDC of a parameter identification controller 71, and a signal vector ξ that is to be entered to the adaptive loop operation unit 60 is obtained. In this case, since the signal vector ξ=0 is established when the binary signal IDC=0, it is found that the parameter identification operation is halted based on equation (5).
Since the parameter identification operation is not performed when the column full rank property of the signal matrix Ξ(k) in equation (9) cannot be obtained, the essential condition for parameter identification is that dv/dt≠0 should be established for the signal vector ξ in equation (2) (dv/dt=0 should not be continued). Therefore, the parameter identification controller 71 detects the acceleration state based on the velocity feedforward Vf and the acceleration feedforward Af, and internally sets a binary signal INIDC=1 as a condition required for performing the parameter identification operation only during a period of acceleration and during a period of setting time (a predesignated value) after the acceleration has been completed.
A binary signal OIDC is a signal, for which the host apparatus outputs a value of 0 to halt the parameter identification operation in a case wherein it is assumed that a contact or manipulation due to an external environment occurs with respect to the target plant 100. The final binary signal IDC of the parameter identification controller 71 is determined by equation (10).IDC=OIDC∩INIDC  (10)That is, the binary signal IDC=1 is output only when both the parameter identification operation condition (OIDC=1) output by the host apparatus and the parameter identification operation condition (INIDC=1) detected by the parameter identification controller 71 are established. When the value of the binary signal IDC is changed from 0 to 1, the adaptive loop operation unit 60 sets a predesignated initial value P(0) to the gain matrix P(k), and performs a series of adaptive loop calculations, represented by equations (8), (5) and (6), in the individual sampling time periods, to obtain the identified parameter vector {circumflex over ( )}γ(k).
In this case, the second, third and fourth elements of the identified parameter vector {circumflex over ( )}γ(k) are {circumflex over ( )}MgLSßCα, {circumflex over ( )}MgLSßCα and {circumflex over ( )}τL. A nonlinear element calculation unit 73 calculates CXc and −SXc for the position command value Xc, and calculates equation (11) to determine a nonlinear element torque compensation value τnr.τnr=(1/Rt){{circumflex over ( )}MgLSßCαCXc+{circumflex over ( )}MgLSßSα(−SXc)+{circumflex over ( )}τL}=(1/Rt){{circumflex over ( )}τg+{circumflex over ( )}τL}  (11)Since Rt·τnr is the sum of estimated values for the second term (gravitational torque) and the third term (sliding-mode load torque) of the right side of motion equation (1), both of which are nonlinear elements, the output of the adder 57 and τnr are added together by an adder 58 to enable the performance of feedforward compensation for the nonlinear elements.
The strength of linear independence will now be described. First, the signal matrix Ξ(k) represented by equation (9) is expanded. Equation (12) is obtained by performing expansion for the matrix Ξ(k) (m×n) for the past m cycles.
                              Ξ          ⁡                      (            k            )                          =                                            [                                                ξ                  ⁡                                      (                                          k                      -                      m                      +                      1                                        )                                                  ,                                  ξ                  ⁡                                      (                                          k                      -                      m                      +                      2                                        )                                                  ,                …                ⁢                                                                  ,                                  ξ                  ⁡                                      (                    k                    )                                                              ]                        T                    =                                                                 [                                                                                                                                                          ξ                            1                                                    ⁡                                                      (                                                          k                              -                              m                              +                              1                                                        )                                                                          ,                                                                              ξ                            2                                                    ⁡                                                      (                                                          k                              -                              m                              +                              1                                                        )                                                                          ,                        …                        ⁢                                                                                                  ,                                                                              ξ                            n                                                    ⁡                                                      (                                                          k                              -                              m                              +                              1                                                        )                                                                                                                                                                                                                                                        ξ                            1                                                    ⁡                                                      (                                                          k                              -                              m                              +                              2                                                        )                                                                          ,                                                                              ξ                            2                                                    ⁡                                                      (                                                          k                              -                              m                              +                              2                                                        )                                                                          ,                        …                        ⁢                                                                                                  ,                                                                              ξ                            n                                                    ⁡                                                      (                                                          k                              -                              m                              +                              2                                                        )                                                                                                                                                                          ⋮                                                                                                                                                                                ξ                            1                                                    ⁡                                                      (                            k                            )                                                                          ,                                                                              ξ                            2                                                    ⁡                                                      (                            k                            )                                                                          ,                        …                        ⁢                                                                                                  ,                                                                              ξ                            n                                                    ⁡                                                      (                            k                            )                                                                                                                                              ]                            =                                                                                     [                                                                  ξ                        1                                            ,                                              ξ                        2                                            ,                      …                      ⁢                                                                                          ,                                              ξ                        n                                                              ]                                    ⁢                                      (                                          m                      ×                      n                                        )                                                                                                          (        12        )            In this case, since the signal vector ξ has four dimensions as represented in equation (2), n=4 is obtained and ξ1 is a column vector consisting of dv/dt arranged in the direction of rows in a time series manner, ξ2 is a column vector consisting of Cx arranged in the direction of rows in a time series manner, ξ3 is a column vector consisting of −Sx arranged in the direction of rows in a time series manner, and ξ4 is a column vector consisting of 1 arranged in the direction of rows in a time series manner.
Generally, a ratio of the minimum singular value σmin to the maximum singular value σmax of a matrix is employed as an index that represents the strength of the linear independence condition of column vectors in the matrix. The range of the ratio is represented by equation (13), and as the range is extended, it can be assumed that the linear independence becomes strong.0≤(σmin/σmax)≤1  (13)
For example, an identity matrix is a matrix for which the individual column vectors are orthonormal vectors that are in the extremely strong linear independence condition, and for which σmin/σmax=1 is established. In a case wherein a matrix does not have column full rank (the individual column vectors are not linearly independent), σmin=0 is obtained, and σmin/σmax=0 is established.
Meanwhile, it is known that when matrix A(m×n) is multiplied by arbitrary vector y(n x) having a magnitude of 1 (∥y∥=1), a magnitude ∥Ay∥ of the obtained vector Ay(m×1) falls in the range represented by equation (14).σmin(A)≤∥Ay∥≤σmax(A); note: ∥y∥=1  (14)
When the relationship of equation (14) is applied for the signal matrix Ξ(k) in equation (12), and when the maximum absolute elements ξ*_max are compared with each other for the individual column vectors ξ* (*=1, 2, . . . , n) in equation (12), the outline of a relationship of “the minimum ξ*_max”σmin(Ξ) and “the maximum ξ*_max” σmax(Ξ) is established, and therefore, as the ratio of the maximum value for ξ*_max to the minimum value for ξ*_max is reduced (a value indicated by the minimum value for ξ*_max/the maximum value for ξ*_max is increased), the strength of linear independence for the single matrix Ξ(k) is increased.
When the signal matrix Ξ(k) continuously has column full rank, estimation calculation for the identified parameter vector {circumflex over ( )}γ(k) is converged to the actual parameter vector γ. However, for identifying a low-frequency disturbance element, such as a gravitational torque or a sliding-mode load torque, represented in this example, the amplitude and the time-transient change of a corresponding signal element (specifically, the second, third or fourth element of the signal vector ξ(k) in equation (2)) is small, and therefore, the strength of the linear independence of the column vectors of the signal matrix Ξ(k) is lowered, and accordingly, the identification convergence is delayed and accurate nonlinear compensation control cannot be performed.
Graphs in FIG. 9 represent an example convergence characteristic for parameter identification performed by the conventional position control apparatus 200 in FIG. 7. The upper left graph shows a time-series velocity command value Vc(k) (=Xc(k)−Xc(k−1)) issued during the position control operation. At the time of 50 ms along the time axis, acceleration is generated in the positive direction from Xc=0, and thereafter, a binary signal IDC=1 is obtained to validate the performance of identification operation. The target plant 100 is defined in equation (1) as ML2+Ir=0.04 [kg·m2], |τg|=MgLSβ=2 [Nm], α=π/6 [rad], and τL=1 [Nm].
In this example, since the maximum acceleration is 200 [rad/s2] (=8 [rad/s]/0.04 [s]), ξ1_max=200, ξ2_max=ξ3_max=ξ4_max=1 is obtained, and the ratio of the maximum value of ξ*_max to the minimum value is large (the minimum value of ξ*_max/the maximum value of ξ*_max is small), and therefore, the linear independence of the signal matrix Ξ(k) is not strong. The upper right graph shows the ratio of the minimum singular value σmin(Ξ) to the maximum singular value σmax(Ξ) for the signal matrix Ξ(k) in the past 20 cycles. As described above, by employing equation (13), the strength of the linear independence for the column vectors that varies from moment to moment is represented.
The lower left graph shows the convergence response of identification. Since the vertical axis represents Φ*(k)/γ*=({circumflex over ( )}γ*(k)−γ*)/γ* (*=1, 2, 3, 4), an approach to 0 indicates convergence. In this case, the identification of low-frequency disturbance elements for a gravitation torque and a sliding-mode load torque is delayed, and a period of 200 ms is required from the start of acceleration until an identification error of within 10%. The lower right graph shows a comparison between a gravitational torque τg(k)=MgLSβC(x+α) and an estimated gravitational torque {circumflex over ( )}τg(k), which is introduced based on the second and third elements ({circumflex over ( )}MgLSβCα and {circumflex over ( )}MgLSβSα) of the identified parameter vector {circumflex over ( )}γ(k). It is apparent that {circumflex over ( )}τg(k) approaches and matches τg(k) in the same period of time required for the identification convergence in the lower left graph.
Next, an example wherein a linear motion table is employed as the target plant 100 will be described. Equation (15) is provided as an equation of motion, and FIG. 10 is provided as a block diagram to represent equation (15).τm=I(dv/dt)+Dv+τL  (15)In this equation, τm denotes a torque generated by a motor, I denotes moment of inertia of the whole unit (including a motor), v denotes a velocity, D denotes a viscous resistance and τL denotes a sliding-mode load torque. Parametric representation for this case is provided by equations (16) and (17).ξ=[dv/dt,v,1]T  (16)γ=[I,D,τL]T  (17)
Graphs in FIG. 11 show an example convergence characteristic of parameter identification of the conventional position control apparatus 200 in this case. In this example, acceleration with the maximum velocity of 16 [rad/s] and the maximum acceleration of 400 [rad/s2] is generated at a time of 20 ms along the time axis in the positive direction, and thereafter, the binary signal IDC=1 is obtained to validate the identification operation. In equation (15), the target plant 100 is defined as I=6.5·10−4 [kg·m2], D=0.01 [Nm/(rad/s)] and τL=1 [Nm].
As in FIG. 9, the upper left graph of FIG. 11 shows a time-series velocity command value Vc(k), the upper right graph shows σmin(Ξ)/σmax(Ξ) that is obtained by calculating the signal matrix Ξ(k) for the past 20 cycles, and the lower left graph shows the convergence response of identification. In this example, ξ1_max=400, ξ2_max=16 and ξ3_max=1 are also obtained, and therefore, the ratio of the maximum value for ξ*_max to the minimum value is large, and the linear independence of the signal matrix Ξ(k) is not strong. In this case, identification for the viscous resistance D is especially delayed, and for convergence of identification, a period of 20 ms or longer is required from the start of acceleration.